package com.briup.day03;

/**
 * 循环结构
 */
public class CircularStructure {
    public static void main(String[] args) {
        /*
            循环结构（三要素：循环条件，循环体，迭代条件）：
                for(;循环条件;迭代条件){循环体}：for循环结构
                while(循环条件){循环体，通常放在循环体内，在循环的语句之后}：
                     while循环结构
                do{循环体，迭代条件}while(循环条件);：do..while循环结构

                while循环和do...while循环的区别在于，do...while循环在执行循环条件之前
                会先执行一次循环体，即while循环的循环体是在循环条件成立的情况下才会执行，
                而do...while循环是循环条件不成立也会执行一次循环体的内容

                注意：在写循环结构时，必须保证循环结构存在出口，否则会让程序陷入到死循环中
         */
        // 在变量进行运算之前必须保证该变量必须是赋值了的，
        // 因为如果没有赋值，那么该变量指向的空间内部就没有数据，
        // 那么就无法让该变量参与运算
        int count = 0;
        for (int i = 1; i > 0; i *= 2) {
            count++;
            System.out.println("i的值为：" + i);
        }
        // 执行了31次，因为2^31超过了int类型的最大值，
        // 所以会导致数据溢出，然后该变量空间内的值会变成负数
        System.out.println("上述循环的循环体执行了几次:" + count);
    }
}
